
/**
 *
 * @author agomez
 */
public class jugador {

    final int parametrosJugador = 11;//Controlamos cantidad de parametros en el array del jugador
    final int VIDAMAX = 0;  //Puntos de vida máximos
    final int NIVEL = 1;    //Nivel actual del jugador
    final int VIDA = 2;     //Puntos de vida actuales
    final int EXPNECESARIA = 3;//EXP necesaria para subir de lvl
    final int EXPACTUAL = 4;//EXP acumulada actualmente
    final int ATAQUE = 5;   //Daño infligido al atacar
    final int DEFENSA = 6;  //Daño amortiguado al defender
    final int MAGIA = 7;    //Daño mágico infligido (Daño hechizo = Daño base + % de la magia total)
    final int VELOCIDAD = 8;//Determina quién empieza atacando
    final int CRITICO = 9;  //Probabilidad de un impacto que inflige 150% daño
    //Una décima estadística de clase
    final int IRA = 10;      //Recurso utilizado por el guerrero para usar habilidades. Se genera al golpear (más con golpe crítico)
    final int MANA = 10;     //Recurso utilizado por el mago para lanzar hechizos. Se regenera lentamente con el tiempo
    final int ENERGIA = 10;  //Recurso utilizado por el asesino para utilizar habilidades. Se regenera rápidamente con el tiempo

    /*Generamos al jugador a partir del nivel origen (por si cargamos partida)
     También nos sirve como auxiliar para subir de nivel*/
    public long[] generarJugador(int nivel, String clase) {
        long[] jugador = new long[parametrosJugador];

        switch (clase) {
            case "Guerrero":
                jugador[VIDAMAX] = 100 + (30 * nivel);//Incrementamos la vida en 30 por cada nivel
                jugador[ATAQUE] = 18 + (3 * nivel);
                jugador[DEFENSA] = 15 + (3 * nivel);
                jugador[MAGIA] = 0 + (0 * nivel);
                jugador[IRA] =0;//Máximo de 100, generada cada turno con los ataques (los golpes criticos generan más)
                break;
            case "Asesino":
                jugador[VIDAMAX] = 70 + (15 * nivel);//Incrementamos la vida en 15 por cada nivel
                jugador[ATAQUE] = 13 + (2 * nivel);
                jugador[DEFENSA] = 10 + (2 * nivel);
                jugador[MAGIA] = 0 + +(0 * nivel);
                jugador[ENERGIA] =100;//Se regenera una cantidad fija cada turno
                break;
            case "Mago":
                jugador[VIDAMAX] = 55 + (13 * nivel);//Incrementamos la vida en 13 por cada nivel
                jugador[ATAQUE] = 5 + (1 * nivel);
                jugador[DEFENSA] = 10 + (2 * nivel);
                jugador[MAGIA] = 20 + (3 * nivel);
                jugador[MANA] = 100 + (6 * nivel);
                break;
        }

        jugador[VIDA] = jugador[VIDAMAX];
        jugador[NIVEL] = nivel;
        jugador[EXPNECESARIA] = 100 + (25 * nivel);
        jugador[EXPACTUAL] = 0;

        return jugador;
    }

    //De aqui tiene que salir el array con los datos del jugador con el arma equipada
    public long[] equiparArma(double[] datosArma, long[] jugador) {
        long[] jugadorArmaEquipada = new long[jugador.length];

        for (int i = 0; i < jugador.length; i++) {
            jugadorArmaEquipada[i] = jugador[i];
        }

        jugadorArmaEquipada[ATAQUE] += datosArma[1];
        jugadorArmaEquipada[VELOCIDAD] += datosArma[2];
        jugadorArmaEquipada[CRITICO] += datosArma[3];

        return jugadorArmaEquipada;

    }

}
